A Virtual Private Network (VPN) provides secure connectivity over public or private networks between, illustratively, two or more customer edge (CE) routers or sites located at different physical locations. A Multicast VPN may be used to transport multicast traffic between multiple CE routers.
A Multicast Distribution Tree (MDT) is used to connect a source or transmitter CE router to all destination or receiver CE routers. The source or transmitter CE router forms a root node of the MDT, while the destination or receiver CE routers form leaf nodes of the MDT.
One way of creating an MDT is by using a Point to Multi-Point (P2MP) tunnel when an underlying network transport layer is based on a Multi-Protocol Label Switched (MPLS) network. The ingress or source Label Switch Router (LSR) forms the root node of the multicast distribution tree (MDT), while the egress or destination LSR(s) form the leaf nodes of the MDT. The leaf nodes can join and leave the MDT at any time. It is noted that the MDT is unidirectional; packets travel only from the root to the leaves.
For reliable traffic delivery over the Internet, it is important to reduce delay due to connectivity failure. Bidirectional Forwarding Detection (BFD) provides a mechanism to quickly detect connectivity failure so that an alternate connectivity path can be used to restore communication. To detect a data plane failure in the forwarding path of an MPLS LSP, a BFD session is established for that MPLS LSP. If the LSP is associated with multiple Forwarding Equivalence Classes (FECs), a BFD session is established for each FEC. BFD control packets are transmitted by the ingress LSR, these packet travel along the same data path as the LSP being verified and are processed at the egress LSR. BFD control packets contain a “discriminator” field to distinguish each BFD session on the LSP.
The process of establishing a BFD session (i.e., sending the session parameters from the ingress to the egress LSR) is called BFD session bootstrapping.
One mechanism to bootstrap a BFD session is to use MPLS LSP ping. Specifically, an LSP Ping echo message is sent by an ingress LSR toward the egress LSRs along the data path taken by LSP. The LSP Ping echo message contains the discriminator assigned by the ingress LSR.
Upon receiving the LSP Ping message, an egress LSR sends a BFD control packet to the ingress LSR. A “your discriminator” field in the BFD control packet is set to the discriminator received in LSP Ping echo message. Similar discriminator information is exchanged from the egress LSR to the ingress LSR.
A BFD control packet sent by the ingress LSR to the egress LSRs has the “your discriminator” field set to the discriminator received from the egress LSR. The egress LSR, on receiving the BFD control packet from the ingress LSR, uses the “your discriminator” field value to demultiplex the BFD session.
Unfortunately, this method is not efficient and scalable for P2MP tunnels, since the head of the tunnel (i.e., the root node) must maintain a unique BFD session for each tail of the tunnel (i.e., each leaf node).
A proposed BFD session bootstrapping mechanism for multipoint networks provides that a BFD session originates at the head of the multipoint tree, and the tails need not sent any BFD packets. That is, the root or head node of the MDT assigns a discriminator value bound to the multipoint tree, and transmits a BFD control packet associated with that discriminator. The tail or leaf nodes of the MDT demultiplex received packets based on a combination of the packet source address (i.e., the IP address of the source or receiving node) and the assigned discriminator which together uniquely identify the head node of the MDT as well as the point to multipoint tunnel structure represented by the MDT. Internet Engineering Task Force (IETF) proposed standard entitled “BFD for Multipoint Networks” by D. Katz and D. Ward (Feb. 5, 2009).
Unfortunately, the proposed BFD session bootstrapping mechanism does not address the specific discriminator values to be used, and does not define how the BFD session discriminator values are to be propagated from the BFD head to BFD tails. It is noted that BFD sessions are independent of any MVPN or P2MP configuration.